Start when sensor RT 2: Start is active
Set block RT Block 4 occupied
Assign short address 22 as RT2 in RT Block 4

Set function key 0 on
Set direction to forward
Set speed to .5
Wait for 1 second

# Simulate train movement with look ahead checking
If block RT Block 5 is occupied
    Set speed to 0
    Wait for block RT Block 5 to become unoccupied
Endif
Set speed to .5

Set block RT Block 5 occupied
Wait for .8 second
Set block RT Block 4 unoccupied
Wait for .8 second

If block RT Block 6 is occupied
    Set speed to 0
    Wait for block RT Block 6 to become unoccupied
Endif
Set speed to .5

Set block RT Block 6 occupied
Wait for .8 second
Set block RT Block 5 unoccupied
Wait for .8 second

If block RT Block 1 is occupied
    Set speed to 0
    Wait for block RT Block 1 to become unoccupied
Endif
Set speed to .5

Set block RT Block 1 occupied
Wait for .8 second
Set block RT Block 6 unoccupied
Wait for .8 second

If block RT Block 2 is occupied
    Set speed to 0
    Wait for block RT Block 2 to become unoccupied
Endif
Set speed to .5

Set block RT Block 2 occupied
Wait for .8 second
Set block RT Block 1 unoccupied
Wait for .8 second

If block RT Block 3 is occupied
    Set speed to 0
    Wait for block RT Block 3 to become unoccupied
Endif
Set speed to .5

Set block RT Block 3 occupied
Wait for .8 second
Set block RT Block 2 unoccupied
Wait for .8 second

If block RT Block 4 is occupied
    Set speed to 0
    Wait for block RT Block 4 to become unoccupied
Endif
Set speed to .5

Set block RT Block 4 occupied
Wait for .8 second
Set block RT Block 3 unoccupied
Wait for .8 second

# Cleanup before stop
If sensor RT 2: Stop is active
    Set speed to 0
    Set function key 0 off
    Set block RT Block 4 unoccupied
Endif
Stop if sensor RT 2: Stop is active